namespace CSharpPro._1016;
using System.Collections.Generic;
using System.Linq;
using System.Text.RegularExpressions;


    public class UserService
    {
        private List<User> users = new List<User>();
        // 用于存储当前登录用户
        public User CurrentUser { get; private set; }

        // 用户注册方法
        public string Register(string username, string password, string confirmPassword)
        {
            // 检查用户名是否为空或纯空格
            if (string.IsNullOrWhiteSpace(username))
            {
                return "用户名不可为空";
            }
            // 检查密码是否为空或纯空格
            if (string.IsNullOrWhiteSpace(password))
            {
                return "密码不可为空";
            }
            // 检查确认密码是否为空或纯空格
            if (string.IsNullOrWhiteSpace(confirmPassword))
            {
                return "确认密码不可为空";
            }
            // 检查用户名长度是否在 3 - 15 个字符之间
            if (username.Length < 3 || username.Length > 15)
            {
                return "用户名长度必须为 3 - 15 个字符";
            }
            // 检查用户名是否只包含字母、数字、下划线
            if (!Regex.IsMatch(username, @"^[a-zA-Z0-9_]+$"))
            {
                return "用户名只能包含字母、数字、下划线";
            }
            // 检查密码长度是否在 6 - 20 个字符之间
            if (password.Length < 6 || password.Length > 20)
            {
                return "密码长度必须为 6 - 20 个字符";
            }
            // 检查密码是否包含至少 1 个大写字母、1 个小写字母和 1 个数字
            if (!Regex.IsMatch(password, @"[A-Z]") || !Regex.IsMatch(password, @"[a-z]") || !Regex.IsMatch(password, @"[0-9]"))
            {
                return "密码必须包含至少 1 个大写字母、1 个小写字母和 1 个数字";
            }
            // 检查密码与确认密码是否一致
            if (password != confirmPassword)
            {
                return "密码与确认密码不一致";
            }
            // 检查用户名是否已存在
            if (users.Any(u => u.Username == username))
            {
                return "用户名已存在";
            }
            // 添加用户到用户列表
            users.Add(new User { Username = username, Password = password });
            return "注册成功";
        }

        // 用户登录方法
        public string Login(string username, string password)
        {
            // 检查用户名是否为空或纯空格
            if (string.IsNullOrWhiteSpace(username))
            {
                return "用户名不可为空";
            }
            // 检查密码是否为空或纯空格
            if (string.IsNullOrWhiteSpace(password))
            {
                return "密码不可为空";
            }
            // 查找用户
            User user = users.FirstOrDefault(u => u.Username == username);
            // 检查用户是否存在
            if (user == null)
            {
                return "用户名不存在";
            }
            // 检查密码是否正确
            if (user.Password != password)
            {
                return "密码错误";
            }
            // 设置当前登录用户
            CurrentUser = user;
            return "登录成功";
        }
    }
    // 用户类
    public class User
    {
        public string Username { get; set; }
        public string Password { get; set; }
    }

